package com.rightsidetech.system.mapper;

import com.rightsidetech.system.dtos.request.UpdatePhoneNoReq;
import com.rightsidetech.system.dtos.request.agent.SysAgentInfoPageReq;
import com.rightsidetech.system.dtos.request.agent.SysAgentInfoReq;
import com.rightsidetech.system.dtos.response.AgentRegionResp;
import com.rightsidetech.system.dtos.response.LoginResp;
import com.rightsidetech.system.dtos.response.agent.AgentAppInfoResp;
import com.rightsidetech.system.dtos.response.agent.SysAgentInfoResp;
import com.rightsidetech.system.dtos.response.agent.SysDropDownNameResp;
import com.rightsidetech.system.entity.SysAgentLoginInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SysAgentLoginInfoMapper {
    int deleteByPrimaryKey(Long id);

    int insert(SysAgentLoginInfo record);

    int insertSelective(SysAgentLoginInfo record);

    SysAgentLoginInfo selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SysAgentLoginInfo record);

    int updateByPrimaryKey(SysAgentLoginInfo record);

    SysAgentLoginInfo selectByLoginName(String loginName);

    List<SysAgentInfoResp> page(@Param("req") SysAgentInfoReq req,@Param("areaId") Long areaId);

    int updateStatus(@Param("id") Long id, @Param("del") Byte del, @Param("status") Byte status);

    List<SysDropDownNameResp> selectList(@Param("areaId") Long areaId);

    List<SysDropDownNameResp> selectAgentList(Long agentId);

    LoginResp selectLoginResDate(String token);

    SysAgentLoginInfo selectAgentId(Long id);

    List<SysAgentInfoResp> pageAgent(@Param("req") SysAgentInfoPageReq req, @Param("agentId") Long agentId);

    List<Long> selectOperateList(Long agentId);

    SysAgentLoginInfo selectByMobileNo(String mobileNo);

    List<Long> selectNameMobile(@Param("loginName")String loginName,@Param("mobileNo")String mobileNo);

    SysAgentLoginInfo selectNameOrMobile(String login);

    List<SysAgentLoginInfo> findByAgentInfoId(@Param("agentInfoId") Long agentInfoId);

    AgentAppInfoResp selectAgentInfo(Long loginId);

    int updatePhoneNo(@Param("req")UpdatePhoneNoReq req,@Param("loginId")Long loginId);

    SysAgentInfoResp selectById(Long id);

    List<Long> selectRoleIdByLoginId(Long loginId);

    List<Long> selectLoginId(Long agentId);

    AgentRegionResp selectLoginName(Long id);
}